import { EzForm } from '../ez-form';
import { EzFormControlConfiguration } from '../ez-form-control';
import { EzFormGroup } from '../ez-form-group';
import { EzTimepicker } from './ez-timepicker';

/**
 * 时间选择器配置项
 */
export interface EzTimepickerConfiguration extends EzFormControlConfiguration<Date, EzTimepicker> {
  type: 'timepicker';
  /**
   * 格式化字符（默认 HH:mm:ss）
   */
  format?: string;

  /**
   * 是否使用12小时制
   */
  use12Hours?: boolean;

  /**
   * 小时步长
   */
  hourStep?: number;
  /**
   * 分钟步长
   */
  minuteStep?: number;
  /**
   * 秒钟步长
   */
  secondStep?: number;

  /**
   * 被禁用的小时配置
   */
  disabledHours?: (control: EzTimepicker, group: EzFormGroup, form: EzForm) => number[];

  /**
   * 被禁用的分钟配置
   */
  disabledMinutes?: (hour: number, control: EzTimepicker, group: EzFormGroup, form: EzForm) => number[];

  /**
   * 被禁用的秒钟配置
   */
  disabledSeconds?: (hour: number, minute: number, control: EzTimepicker, group: EzFormGroup, form: EzForm) => number[];
}
